# 给定列表 my_list = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21]，请使用 Python 列表切片表达式完成以下任务：
# 任务列表：
#   1. 提取列表中的前 4 个元素
#   2. 提取列表中从索引 5 开始到末尾的所有元素
#   3. 提取列表中索引 3 到索引 7（包含索引 3，不包含索引 7）的元素
#   4. 使用负数索引提取列表中的最后 3 个元素
#   5. 提取列表中从索引 2 开始，每隔 3 个元素的子列表（即步长为 3）
#   6. 提取列表中从索引 9 到索引 2（包含索引 9，不包含索引 2），且步长为 -1 的子列表（反向提取一段连续元素）
#   7. 提取列表中的中间 3 个元素（提示：该列表共 11 个元素，中间元素索引为 5）
#   8. 使用切片将整个列表反转
#   9. 提取列表中从倒数第 6 个元素开始，每隔 2 个元素的子列表（使用负数索引和步长）
#   10. 提取列表中排除前 2 个和后 2 个元素的中间子列表（提示：该列表共 11 个元素，中间元素索引为 5）
my_list = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21]

# 1. 提取前 4 个元素
result1 = my_list[:4]  # 等价于 [0:4]，取索引 0-3（不包含 4）
print("1. 前 4 个元素:", result1)  # 输出: [1, 3, 5, 7]

# 2. 提取索引 5 到末尾的元素
result2 = my_list[5:]  # 从索引 5 开始，直到列表结束
print("2. 索引 5 到末尾:", result2)  # 输出: [11, 13, 15, 17, 19, 21]

# 3. 提取索引 3 到 7（包含 3，不包含 7）
result3 = my_list[3:7]  # 取索引 3、4、5、6（不包含 7）
print("3. 索引 3 到 7:", result3)  # 输出: [7, 9, 11, 13]

# 4. 提取最后 3 个元素（负数索引）
result4 = my_list[-3:]  # -3 表示倒数第 3 个元素，直到末尾
print("4. 最后 3 个元素:", result4)  # 输出: [17, 19, 21]

# 5. 从索引 2 开始，每隔 3 个元素提取
result5 = my_list[2::3]  # 起始索引 2，步长 3（2 → 5 → 8，对应值 5、11、17）
print("5. 从索引 2 开始，每隔 3 个元素:", result5)  # 输出: [5, 11, 17]

# 6. 索引 9 到 2（反向提取，包含 9，不包含 2）
result6 = my_list[9:2:-1]
print("6. 索引 9 到 2（反向提取）:", result6)  # 输出: [19, 17, 15, 13, 11, 9, 7]

# 7. 提取中间 3 个元素（总长度 11，中间索引 5，取 4-6）
result7 = my_list[4:7]  # 索引 4、5、6（值 9、11、13）
print("7. 中间 3 个元素:", result7)  # 输出: [9, 11, 13]

# 8. 反转整个列表
result8 = my_list[::-1]  # 步长 -1 表示反向遍历所有元素
print("8. 反转列表:", result8)  # 输出: [21, 19, 17, 15, 13, 11, 9, 7, 5, 3, 1]

# 9. 从倒数第 6 个元素开始，每隔 2 个元素提取
result9 = my_list[-6::2]  # 倒数第 6 个元素是索引 5（值 11），步长 2（5 → 7 → 9，对应 11、15、19）
print("9. 从倒数第 6 个元素开始，每隔 2 个元素:", result9)  # 输出: [11, 15, 19]

# 10. 排除前 2 个和后 2 个元素的中间子列表
result10 = my_list[2:-2]  # 排除前 2 个（索引 0-1）和后 2 个（索引 9-10），取 2-8（索引 2-7）
print("10. 排除前 2 个和后 2 个元素的中间子列表:", result10)  # 输出: [5, 7, 9, 11, 13, 15, 17]
